<?php
/**
 *
 * @package Bic
 * @author Bic
 * @version $Id: base.php 2009年11月26日 22时29分45秒
 * @copyright (c) 2009 Bic
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 * @version 1.0
 *
 * Minimum Requirement: PHP 5.0.1
 */
abstract class Bic_Base{

    /**
     * 设置变量值
     * 	#~#
     * 	当参数只有一个时，那这个参数必须为数组。
     *	数组的索引为变量名，对应的值为变量名的值
     *	#~#
     *	当参数大于一个且最多只有两个时，第一个参数为变量名，第二个为变量值。
     * @param two param|array $key
     */
    public function set(){
        if(func_num_args()>1){
            $arg[] = func_get_arg(0);
            $arg[] = func_get_arg(1);
            $this->__set($arg[0] , $arg[1]);
        }else if(is_array($arg = func_get_arg(0))){
            foreach ($arg as $argKey => $argVal){
                $this->__set($argKey , $argVal);
            }
        }
    }

    public function __set($name,$value) {
        return $this->$name=$value;
    }

    public function get($key){
        return $this->__get($key);
    }

    function __get($key) {
        return isset($this->$key)?$this->$key:null;
    }

    /**
     * Debug信息
     * @param $msg
     */
    public static function outMsg($msg,$type='custom') {
        if ($type == 'custom'){
            throw new Bic_Exception($msg);
        }else if ($type == 'die'){
            die ( $msg );
        }else if ($type == 'detault'){
            throw new Exception($msg);
        }
    }
}
